const NoteService = require('../services/noteService');
let R = require('../result/r');

/**
 * noteController
 * Controller 是业务入口，由 HTTP 路由解析后调用
 * 包含笔记的增删改查功能
 */
class noteController {
    /**
     * 列出所有笔记
     */
    async listAll(n) {
        const list = await NoteService.listAll();
        n.body = R.ok().data(list);
    }

    /**
     * 查询分页
     */
    async queryById(n){
        const params = n.request.body;
        const list = await NoteService.queryById(params);
        n.body = R.ok().data(list);
    }

    /**
     * 查询一条数据根据id
     */
    async getOneById(n) {
        const one = await NoteService.getOneById(n.params.id);
        n.body = R.ok().data(one);
    }

    /**
     * 查询一条数据根据用户id
     */
     async getByInfoId(n) {
        const one = await NoteService.getByInfoId(n.params.info_id);
        n.body = R.ok().data(one);
    }

    /**
     * 创建一条笔记
     */
    async add(n) {
        const Note = n.request.body;
        const result = await NoteService.create(Note);
        n.body = R.ok("新增成功").data(result);
    }

    /**
     * 删除一条笔记
     * @param acc Koa 的上下文参数
     */
    async deleteById(n) {
        //console.log(n.params.id)
        await NoteService.delete(n.params.id);
        n.body = R.ok("删除成功");
    }


    /**
     * 更新笔记
     */
    async updateOneById(n) {
        const Note = n.request.body;
        await NoteService.update(Note);
        n.body = R.ok("更新成功");
    }


}

// 导出 Controller 的实例
module.exports = new noteController();